In computing, cache coherence or cache coherency refers to the consistency of data stored in local caches of a shared resource. When clients in a system maintain caches of a common memory resource, problems may arise with inconsistent data. This is particularly true of CPUs in a multiprocessing system. Cache coherence is intended to maintain consistency both between caches and between the caches and memory so that the presence of the caches is essentially invisible to the system programmer except for their effect on performance.
A coherence protocol is a protocol which maintains the consistency between all the caches in a system of distributed shared memory. For a given memory model,